home *** CD-ROM | disk | FTP | other *** search
- ;---------------------------------------------------------------------
- ; ** ** ** *** *** **** ** *** ** ****
- ; **** *** *** ** ** ** ** ** **** ** ** ** **
- ; ** ** ** * ** ** ** *** ***** ** ** *** ** **
- ; ****** ** ** ** ** ** ** ** ****** ** ** **
- ; ** ** ** ** ** ** * ** ** ** ** ** * ** ** ** **
- ; ** ** ** ** *** *** ***** ** ** *** ** ****
- ;---------------------------------------------------------------------
- ; AMOS Requester handler V1.6
- ; By François Lionet
- ; AMOS - AMOS Pro - AMOS Compiler (c) Europress Software 1990-1992
- ; To be used with AMOS Pro 1.0 and over
- ;---------------------------------------------------------------------
- ; This file is public domain
- ;---------------------------------------------------------------------
- ; Please refer to the _Music.s file for more informations
- ;---------------------------------------------------------------------
-
- Version MACRO
- dc.b "1.0"
- ENDM
-
-
-
- Req_WY equ 100
-
- T_Tit equ 0
- T_Text equ T_Tit+80
- T_Gad equ T_Text+320
- T_Size equ T_Gad+128
-
- *
- ExtNb equ 3-1
- *
- Include "|AMOS_Includes.s"
- *
- Start dc.l C_Tk-C_Off
- dc.l C_Lib-C_Tk
- dc.l C_Title-C_Lib
- dc.l C_End-C_Title
- dc.w -1
- *
- ******************************************************************
- * OFFSETS TO FUNCTIONS
- C_Off dc.w (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
- dc.w (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
- dc.w (L9-L8)/2,(L10-L9)/2,(L11-L10)/2
-
- ******************************************************************
- * TOKEN TABLE + Addresses
- C_Tk dc.w 1,0
- dc.b $80,-1
- dc.w L_ReqOn,-1
- dc.b "request o","n"+$80,"I",-1
- dc.w L_ReqOf,-1
- dc.b "request of","f"+$80,"I",-1
- dc.w L_ReqWb,-1
- dc.b "request w","b"+$80,"I",-1
- dc.w 0
-
- ******************************************************************
- C_Lib
- ******************************************************************
- * COLD START
- L0 movem.l a3-a6,-(sp)
- lea ReqData(pc),a4
- move.l a4,ExtAdr+ExtNb*16(a5)
- lea Quit(pc),a0
- move.l a0,ExtAdr+ExtNb*16+8(a5)
- * Copy default palette
- lea PI_DefEPa+8*2(a5),a0
- lea Req_Pal+8*2(pc),a1
- moveq #24-1,d0
- CPal move.w (a0)+,(a1)+
- dbra d0,CPal
- * Branch the requester
- move.l a5,Datas-ReqData(a4)
- lea AutoReq(pc),a2
- lea EasyReq(pc),a3
- Rbsr L_SetJump
- move.l a2,PrevAuto-ReqData(a4)
- move.l a3,PrevEasy-ReqData(a4)
- move.w #-1,ReqFlag-ReqData(a4) * Default is AMOS request
- * Return to caller
- movem.l (sp)+,a3-a6
- moveq #ExtNb,d0 * NO ERRORS
- rts
-
- ******* SCREEN RESET
- Warm rts
-
- ******* QUIT
- Quit move.l PrevAuto(pc),a2
- move.l PrevEasy(pc),a3
- Rbra L_SetJump
-
- ***********************************************************
- * AMOS REQUESTER
-
- AutoReq movem.l a0-a6/d0-d7,-(sp)
- bsr Req_In
- bpl.s .Skip
- bsr Req_Auto
- bra Req_AMOS
- .Skip move.l PrevAuto-ReqData(a6),ScAdr-ReqData(a6)
- bra.s Req_WB
-
- EasyReq movem.l a0-a6/d0-d7,-(sp)
- bsr Req_In
- bpl.s .Skip
- bsr Req_Easy
- bra.s Req_AMOS
- .Skip move.l PrevEasy-ReqData(a6),ScAdr-ReqData(a6)
- bra.s Req_WB
-
- ******* Dispatch requester between AMOS/WB
- Req_In lea ReqData(pc),a6
- move.l Datas-ReqData(a6),a5
- tst ReqFlag-ReqData(a6)
- beq.s Req_ANo
- bmi.s .AMOS
- * System requester?
- tst.b WB_Closed(a5) WB closed!
- bne.s .AMOS
- .WB moveq #1,d0
- rts
- * AMOS requester
- .AMOS tst.w T_AMOSHere(a5) AMOS here?
- beq.s .WB
- moveq #-1,d0
- rts
-
- ******* Always no!
- Req_ANo addq.l #4,sp
- movem.l (sp)+,a0-a6/d0-d7
- moveq #0,d0
- rts
-
- ******* WB requester
- Req_WB move.w T_AMOSHere(a5),d0 Is AMOS here?
- move.w d0,ReqOld-ReqData(a6)
- beq.s .skip1
- EcCalD AMOS_WB,0 AMOS To BACK
- .skip1 movem.l (sp),a0-a6/d0-d7
- move.l ScAdr(pc),a5
- jsr (a5)
- lea ReqData(pc),a6
- move.l Datas-ReqData(a6),a5
- move.l d0,Req_Pos-ReqData(a6)
- move.w ReqOld-ReqData(a6),d1
- beq.s .skip2
- EcCalD AMOS_WB,1 AMOS To FRONT
- .skip2 movem.l (sp)+,a0-a6/d0-d7
- move.l Req_Pos(pc),d0
- rts
-
- ******* AMOS Normal requester
- Req_AMOS
-
- SyCall AMALFrz
- bsr UnMix1
-
- move.w Req_Sx-ReqData(a6),d2
- lsl.w #3,d2
- ext.l d2
- move.w Req_Sy-ReqData(a6),d3
- lsl.w #3,d3
- ext.l d3
- moveq #3,d4
- move.l #$8000,d5
- moveq #8,d6
- moveq #0,d7
- lea Req_Pal-ReqData(a6),a1
- EcCalD Cree,EcReq
- bne NoReq
- move.l a0,ScAdr-ReqData(a6)
- WiCalA Print,Req_Init-ReqData(a6)
-
- * Top
- moveq #0,d0
- moveq #0,d1
- moveq #0,d2
- moveq #0,d3
- moveq #4,d4
- moveq #3*8,d5
- bsr Copy
- moveq #4,d0
- moveq #1,d4
- move.w Req_Sx-ReqData(a6),d6
- .lp1 bsr Copy
- subq.w #1,d6
- cmp.w #9,d6
- bcc.s .lp1
- moveq #10,d0
- moveq #4,d4
- bsr Copy
- * Middle
- moveq #3*8,d3
- move.w Req_Sy-ReqData(a6),d7
- sub.w #6,d7
- .lp2 moveq #0,d0
- moveq #3*8,d1
- moveq #0,d2
- moveq #2,d4
- moveq #12,d5
- bsr Copy
- moveq #6,d0
- moveq #1,d4
- move.w Req_Sx-ReqData(a6),d6
- .lp3 bsr Copy
- subq.w #1,d6
- cmp.w #5,d6
- bcc.s .lp3
- moveq #12,d0
- moveq #2,d4
- bsr Copy
- addq.w #8,d3
- subq.w #1,d7
- bne.s .lp2
- * Bottom
- moveq #0,d0
- moveq #4*8+4,d1
- moveq #0,d2
- add.w #4,d3
- moveq #1,d4
- moveq #2*8+4,d5
- bsr Copy
- moveq #6,d0
- moveq #1,d4
- move.w Req_Sx-ReqData(a6),d6
- .lp4 bsr Copy
- subq.w #1,d6
- cmp.w #3,d6
- bcc.s .lp4
- moveq #13,d0
- moveq #1,d4
- bsr Copy
- * Bottom Left
- move.l Req_Pos-ReqData(a6),a0
- .lp5 tst.b (a0)+
- bne.s .lp5
- sub.l Req_Pos-ReqData(a6),a0
- move.w a0,d6
- moveq #1,d0
- moveq #4*8+4,d1
- moveq #1,d2
- moveq #2,d4
- moveq #2*8,d5
- bsr Copy
- moveq #3,d0
- moveq #1,d4
- subq.w #3+1,d6
- bmi.s .sk2
- .lp6 bsr Copy
- dbra d6,.lp6
- .sk2 moveq #4,d0
- moveq #2,d4
- bsr Copy
- * Bottom right
- move.l Req_Neg-ReqData(a6),d0
- move.l d0,a0
- beq.s .sk1
- .lp7 tst.b (a0)+
- bne.s .lp7
- sub.l Req_Neg-ReqData(a6),a0
- move.w a0,d6
- move.w Req_Sx-ReqData(a6),d0
- sub.w a0,d0
- add.b #48-1,d0
- move.b d0,XTNeg-ReqData(a6)
- moveq #8,d0
- moveq #4*8+4,d1
- move.w Req_Sx-ReqData(a6),d2
- sub.w d6,d2
- subq.w #2,d2
- moveq #2,d4
- moveq #2*8,d5
- bsr Copy
- moveq #10,d0
- moveq #1,d4
- subq.w #3+1,d6
- bmi.s .sk3
- .lp8 bsr Copy
- dbra d6,.lp8
- .sk3 moveq #11,d0
- moveq #2,d4
- bsr Copy
- .sk1
- * End of init
- SyCalD ResZone,2
- move.w Req_Sy-ReqData(a6),d0
- lsl.w #3,d0
- move.w d0,Req_Sy-ReqData(a6)
-
- * Initialise background text
- WiCalA Centre,T_Tit(a4)
- * Print main text
- WiCalA Print,Req_Main(pc)
- lea T_Text(a4),a1
- .lop move.l a1,-(sp)
- WiCall Centre
- move.l (sp)+,a1
- .lop1 tst.b (a1)+
- bne.s .lop1
- tst.b (a1)
- bne.s .lop
- * Positive text (left)
- moveq #1,d0
- moveq #"0",d1
- bsr PrtZone
- * Negative text (right)
- move.l Req_Neg-ReqData(a6),d0
- beq.s .NoNeg
- move.l d0,a0
- moveq #2,d0
- moveq #"0",d1
- bsr PrtZone
- * Screen appearance
- .NoNeg move.l ScAdr-ReqData(a6),a2
- move.w #288,d0
- move.w Req_Sx-ReqData(a6),d1
- lsl.w #1,d1
- sub.w d1,d0
- move.w d0,EcAWX(a2)
- bset #1,EcAW(a2)
- moveq #8,d7
- moveq #1,d6
- move.w Req_Sy-ReqData(a6),d5
- lsr.w #1,d5
- add.w #Req_Wy,d5
- bsr AppCentre
- * State of disc drive
- SyCall GetDisc
- move.w d0,DOld-ReqData(a6)
-
- ******* Test loop (fun!)
- ReqLoop
- bsr UnMix2
- move.l a6,-(sp)
- move.l T_GfxBase(a5),a6
- jsr -270(a6) WaitTOF
- move.l (sp)+,a6
- bsr UnMix1
-
- * Automatic disc change
- move.l Req_IDCMP-ReqData(a6),d0
- btst #15,d0
- beq.s NoAuto
- SyCall GetDisc
- cmp.w DOld-ReqData(a6),d0
- beq.s NoAuto
- move.w d0,DOld-ReqData(a6)
- bne ReqYes
- * Keyboard
- NoAuto SyCall Inkey
- cmp.w #13,d1 * ASCII-> Return
- beq.s ReqYes
- cmp.w #27,d1 * ASCII-> ESC
- beq.s ReqNo
- * Don't you think it is better than this wierd Amiga V and B?
- * Sometime I ask myself what they were thinking when they chose such
- * key combinations!
- swap d1
- move.w d1,d0 * Isolate AMIGA keys
- and.w #%1100000000000000,d0
- beq.s RqL0
- cmp.b #$34,d1 * V
- beq.s ReqYes
- cmp.b #$35,d1 * B
- beq.s ReqNo
- * Mouse pointer
- RqL0 SyCall GetZone
- cmp.w #EcReq,d1
- beq.s RqL1
- moveq #0,d1
- RqL1: swap d1
- cmp.w d7,d1
- beq.s RqL2
- move.w d7,d0
- move.w d1,d7
- moveq #"0",d1
- bsr PrtZone
- RqL2: move.w d7,d0
- moveq #"1",d1
- bsr PrtZone
- tst.w d7
- beq ReqLoop
- SyCall MouseKey
- tst.w d1
- beq ReqLoop
- cmp.w #2,d7
- beq.s ReqNo
- ReqYes moveq #-1,d0
- bra.s ReqGo
- ReqNo moveq #0,d0
-
- ******* End of screen (well done!!!)
- ReqGo move.l d0,-(sp)
- move.l ScAdr-ReqData(a6),a2
- moveq #-8,d7
- move.w EcTY(a2),d6
- lsr.w #1,d6
- move.w Req_Sy-ReqData(a6),d5
- lsr.w #1,d5
- add.w #Req_Wy,d5
- bsr AppCentre
- EcCalD Del,EcReq
-
- ******* Back to system!
- ReqX bsr UnMix2
- bsr ClrData
- SyCall AMALUFrz
- move.l (sp)+,Req_Pos-ReqData(a6) * Returns answer
- * Normal exit
- ReqXX movem.l (sp)+,a0-a6/d0-d7
- move.l Req_Pos(pc),d0
- rts
- ******* Can't open screen!!!
- NoReq clr.l -(sp)
- bra.s ReqX
-
- ******* Print a zone D0-> zone, D1-> inverse or not
- PrtZone subq.w #1,d0
- bmi.s PrtX
- bne.s PrtNeg
- * Print pos text
- PrtPos tst.l Req_Pos-ReqData(a6)
- beq.s .skip
- lea TPos1-ReqData(a6),a1
- move.b d1,8(a1)
- WiCall Print
- move.l Req_Pos-ReqData(a6),a1
- WiCall Print
- WiCalA Print,TPos2-ReqData(a6)
- .skip bra.s PrtX
- * Print neg text
- PrtNeg tst.l Req_Neg-ReqData(a6)
- beq.s .skip
- lea TNeg1-ReqData(a6),a1
- move.b d1,8(a1)
- WiCall Print
- move.l Req_Neg-ReqData(a6),a1
- WiCall Print
- WiCalA Print,TNeg2-ReqData(a6)
- .skip
- PrtX rts
-
- ******* Screen appearance
- AppCentre:
- move.w d6,d4
- move.w d6,EcAWTy(a2)
- add.w d6,EcAWTy(a2)
- bset #2,EcAWT(a2)
- move.w EcTy(a2),d0
- lsr.w #1,d0
- sub.w d6,d0
- move.w d0,EcAVY(a2)
- bset #2,EcAV(a2)
- move.w d5,EcAWy(a2)
- sub.w d6,EcAWy(a2)
- bset #2,EcAW(a2)
- movem.l a2/d4-d7,-(sp)
- SyCall WaitVBL
- EcCall CopForce
- movem.l (sp)+,a2/d4-d7
- add.w d7,d6
- bpl.s FsApp2
- clr.w d6
- FsApp2: move.w EcTy(a2),d0
- lsr.w #1,d0
- cmp.w d0,d6
- bcs.s FsApp3
- move.w d0,d6
- FsApp3: cmp.w d4,d6
- bne.s AppCentre
- rts
-
- ******* Prevent mixes between AMOS and the requester!
- UnMix1 movem.l d0-d7/a0-a6,-(sp)
- move.l $4.w,a6
- jsr Forbid(a6)
- EcCall Current
- move.w EcNumber(a0),d1
- lea ReqOld(pc),a0
- move.w d1,(a0)
- EcCalD Active,EcReq
- EcCalD First,EcReq
- EcCall CopMake
- SyCall WaitVBL
- movem.l (sp)+,d0-d7/a0-a6
- rts
- UnMix2 movem.l d0-d7/a0-a6,-(sp)
- move.w ReqOld(pc),d1
- EcCall Active
- move.l $4.w,a6
- jsr Permit(a6)
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ******* Open TEXT data zone
- ResData move.l #T_Size,d0
- SyCall SyFast
- move.l d0,a4
- rts
- ******* Clear TEXT data zone
- ClrData move.l #T_Size,d0
- move.l a4,a1
- SyCall SyFree
- rts
-
- ******* Entree requester WB1.3
- Req_Auto
-
- bsr ResData
-
- move.l #$00008000,Req_IDCMP-ReqData(a6)
-
- lsr.w #3,d2
- addq.w #3,d2
- and.w #$FFFC,d2
- move.w d2,Req_Sx-ReqData(a6)
- lsr.w #3,d3
- addq.w #2,d3
- move.w d3,Req_Sy-ReqData(a6)
-
- move.l a1,a0
- lea T_Text(a4),a1
- moveq #10,d0
- bsr IT_Print
-
- clr.l Req_Pos-ReqData(a6)
- lea T_Gad(a4),a1
- move.l a2,d0
- move.l d0,a0
- beq.s .skip1
- move.l a1,Req_Pos-ReqData(a6)
- moveq #0,d0
- bsr IT_Print
- .skip1
- clr.l Req_Neg-ReqData(a6)
- lea T_Gad+64(a4),a1
- move.l a3,d0
- move.l d0,a0
- beq.s .skip2
- move.l a1,Req_Neg-ReqData(a6)
- moveq #0,d0
- bsr IT_Print
- .skip2
- lea Req_Tit(pc),a0
- lea T_Tit(a4),a1
- .loop move.b (a0)+,(a1)+
- bne.s .loop
- rts
-
- ******* Entree requester WB2.0: fabrique les chaines de caracteres
- Req_Easy
- bsr ResData
- move.l (a2),Req_IDCMP-ReqData(a6)
-
- lea 8(a1),a2
- clr.w TxtMaxCx-ReqData(a6)
-
- lea T_Tit(a4),a1
- move.l (a2)+,d0
- move.l d0,a0
- bne.s .nof
- lea Req_Tit(pc),a0
- .nof bsr Format
-
- move.l (a2)+,a0
- lea T_Text(a4),a1
- bsr Format
- move.w TxtCy-ReqData(a6),Req_Sy-ReqData(a6)
-
- move.l (a2)+,a0
- lea T_Gad(a4),a1
- bsr Format
-
- lea T_Gad(a4),a0
- move.l a0,Req_Pos-ReqData(a6)
- clr.l Req_Neg-ReqData(a6)
- .loop move.b (a0)+,d0
- beq.s .skp
- cmp.b #"|",d0
- bne.s .loop
- clr.b -1(a0)
- move.l a0,Req_Neg-ReqData(a6)
- .skp
- move.w TxtMaxCx-ReqData(a6),d0
- cmp.w #32,d0
- bcc.s .skp2
- moveq #32,d0
- .skp2 add.w #9,d0
- and.w #$FFFC,d0
- move.w d0,Req_Sx-ReqData(a6)
-
- add.w #8,Req_Sy-ReqData(a6)
- rts
-
- ** Routine, appel de RawDoFmt
- Format clr.w TxtCx-ReqData(a6)
- move.w #1,TxtCy-ReqData(a6)
- movem.l a2/a3/a6,-(sp)
- exg a3,a1
- lea .OutC(pc),a2
- move.l $4.w,a6
- jsr -522(a6)
- exg a3,a1
- movem.l (sp)+,a2/a3/a6
- .XMax move.w TxtCx-ReqData(a6),d0
- cmp.w TxtMaxCx-ReqData(a6),d0
- bls.s .sk
- move.w d0,TxtMaxCx-ReqData(a6)
- .sk rts
- .OutC movem.l a6/d0,-(sp)
- lea ReqData(pc),a6
- addq.w #1,TxtCx-ReqData(a6)
- move.b d0,(a3)+
- cmp.b #10,d0
- bne.s .Skip
- clr.b (a3)+
- addq.w #1,TxtCy-ReqData(a6)
- bsr.s .XMax
- clr.w TxtCx-ReqData(a6)
- .Skip movem.l (sp)+,a6/d0
- clr.b (a3)
- rts
-
- ******* Routine: copie un intuitext dans le buffer
- * A0-> ITEXT
- * A1-> Buffer
- * D0-> Mettre un 10 a la fin...
- IT_Print
- movem.l a0-a2/d0-d1,-(sp)
- .loop move.l 12(a0),d1
- move.l d1,a2
- beq.s .skip
- .loop1 move.b (a2)+,(a1)+
- bne.s .loop1
- tst.w d0
- beq.s .skip
- move.b d0,-1(a1)
- clr.b (a1)+
- .skip move.l 16(a0),d1
- move.l d1,a0
- bne.s .loop
- movem.l (sp)+,a0-a2/d0-d1
- rts
-
- ******* Routine: copie les donnees binaires
- Copy movem.l d0-d7/a0-a5,-(sp)
- mulu #RPic_Sx/8,d1 d1= offset source
- add.l d1,d0
- lea RPic-ReqData(a6),a0 a0= adress source
- move.w Req_Sx-ReqData(a6),d1
- ext.l d1 d1= size of dest line
- mulu d1,d3
- add.l d2,d3 d3= offset dest
- move.l ScAdr-ReqData(a6),a3 a3= dest screen
- subq.w #1,d4
- subq.w #1,d5
- move.w #RPic_NP-1,d2
- .loop1 move.l (a3)+,a4
- add.l d3,a4
- move.l a0,a1
- add.l d0,a1
- move.w d5,d7
- .loop2 move.w d4,d6
- move.l a1,a2
- move.l a4,a5
- .loop3 move.b (a2)+,(a5)+
- dbra d6,.loop3
- add.w #RPic_Sx/8,a1
- add.l d1,a4
- dbra d7,.loop2
- add.w #(RPic_Sx/8)*RPic_Sy,a0
- dbra d2,.loop1
- movem.l (sp)+,d0-d7/a0-a5
- add.w d4,d2
- rts
-
- ;--------------------------------------------------------------------
- * DATA ZONE
- ReqData
- *
- ScAdr dc.l 0
- Datas dc.l 0
- PrevAuto dc.l 0
- PrevEasy dc.l 0
-
- Req_Sx dc.w 0
- Req_Sy dc.w 0
- Req_Pos dc.l 0
- Req_Neg dc.l 0
-
- Req_IDCMP dc.l 0
- ReqFlag dc.w 0
- ReqOld dc.w 0
- DOld dc.w 0
- TxtCx dc.w 0
- TxtMaxCx dc.w 0
- TxtCy dc.w 0
-
- * Title
- Req_Tit dc.b "System request",0
- Req_Init dc.b 27,"C0",27,"V0",27,"Y1",27,"B2",27,"P7",0
- * Main text
- Req_Main dc.b 27,"B2",27,"P3",27,"Y4",0
- * Positive text
- TPos1 dc.b 27,"B4",27,"P3",27,"I0",24,30,30,27,"X2",27,"Z0",0
- TPos2 dc.b 27,"Z1",0
- * Negative text
- TNeg1 dc.b 27,"B4",27,"P3",27,"I0",24,30,30,27,"X"
- XTNeg dc.b "0",27,"Z0",0
- TNeg2 dc.b 27,"Z2",0
- even
- RPic_Sx equ 112
- RPic_Sy equ 56
- RPic_Np equ 3
-
- Req_Pal Incbin "ReqPic.Bin"
- RPic equ Req_Pal+32*2
-
- even
-
- ;--------------------------------------------------------------------
-
- L1
- L2
- L3
-
- ***********************************************************
- * REQUEST WB
- L_ReqWb equ 4
- L4 moveq #1,d0
- Rbra L_ROnOf
- ***********************************************************
- * REQUEST ON
- L_ReqOn equ 5
- L5 moveq #-1,d0
- Rbra L_ROnOf
- ***********************************************************
- * REQUEST OFF
- L_ReqOf equ 6
- L6 moveq #0,d0
- Rbra L_ROnOf
- *
- L_ROnOf equ 7
- L7 move.l ExtAdr+ExtNb*16(a5),a0
- move.w d0,ReqFlag-ReqData(a0)
- rts
-
- **********************************************************
- * Change the library jumps
- * a2-> AutoRequest entry
- * a3-> EasyRequest entry
- L_SetJump equ 8
- L8 movem.l a0/a1/a6,-(sp)
- move.l $4.w,a6
- * AutoRequest
- move.l a2,d0
- lea -$15c,a0
- move.l T_IntBase(a5),a1
- jsr SetFunction(a6)
- move.l d0,a2
- * EasyRequest
- tst.w WB2.0(a5)
- beq.s .skip
- move.l a3,d0
- lea -$1d4-(20*6),a0
- move.l T_IntBase(a5),a1
- jsr SetFunction(a6)
- move.l d0,a3
- .skip movem.l (sp)+,a0/a1/a6
- rts
-
- **********************************************************
- * Even if you do not have error messages, you MUST
- * leave TWO routines empty at the end...
- L9
- L10
- * Two routines means three borders!
- L11
-
- *******************************************************************************
-
- * Welcome message
- C_Title dc.b "AMOSPro Requester V"
- Version
- dc.b 0,"$VER: "
- Version
- dc.b 0
- Even
- * End of extension
- C_End dc.w 0
-
- even
-